BaseAddress: 0x551340


PathFinder
----------



Offset	Size	Description
------	----	-----------
0x0	4	__fastcall bool (???*)(int tileX, int tileY)
0x4	4	__fastcall int (???*)(int startTileX, int startTileY)
0x8	4	Unit:Vehicle* pathFindingUnit
0xC	4	int startTileX
0x10	4	int startTileY
0x14	4	int destTileX
0x18	4	int destTileY
0x1C	4	int distance  [rangeTileX^2 + rangeTileY^2]
0x20	4	int rangeTileX
0x24	4	int rangeTileY
...







Waypoint
--------
Size: 0x200 (512 bytes)

Offset	Size	Description
------	----	-----------
0x0	4	union?
		 Waypoint* freeListNext
		 int numWaypoints
0x4	4	int lastWaypointIndex
0x8	4	
0xC		
0x10		
0x14	4*X	int[8] waypoint
...
0x34	4	flags
0x38	4	Waypoint* nextDestination
0x3C	4	enum {0 = Move/Dock/DockEG/StandGround/CargoRoute/Patrol/Build, 3 = RemoveWall}
0x40	4	
0x44	2		
0x48	4	int currentPixelX [or start]
0x4C	4	int currentPixelY [or start]
0x50	4	int destTileX
0x54	4	int destTileY
0x58	4		{ copy of 0x5C }
0x5C	4		{ 0, sign extended of 0x60 }
0x60	1	rotationSpeed
0x64	4		{ 20, copy of 0x70 }
0x68	4	
0x6C	4	
0x70	4		{ used as range in call to Rand, set using results }
0x74	4	int numWaypoints
0x78	4	int currentWaypoint
0x7C	1*X	char[] direction { 0-7 : 0 = Right, clockwise }	
...
0xBC	4	
0xC0	4	
0xC4		
0xC8		
0xCC	4	enum { 0, 1, 2, 3 }
0xD0	4	int distance

